#define BUZZER_PIN 3  // 蜂鸣器连接到数字引脚3


// 生日快乐简谱音符频率 (Hz) - C大调
int notes[] = {
  523, 523, 587, 523, 698, 659, 0, 523, 523, 587, 523, 784, 698, 0,
  523, 523, 1047, 880, 698, 659, 587, 0, 988, 988, 880, 698, 784, 698
};

// 音符持续时间 (毫秒) - 4分音符=500ms为基准
int durations[] = {
  250, 250, 500, 500, 500, 1000, 250, 250, 250, 500, 500, 500, 1000, 250,
  250, 250, 500, 500, 500, 500, 1000, 250, 250, 250, 500, 500, 500, 1000
};

void setup() {
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  // 播放完整乐曲
  for (int i = 0; i < sizeof(notes)/sizeof(notes[0]); i++) {
    if (notes[i] == 0) {
      noTone(BUZZER_PIN);  // 休止符
    } else {
      tone(BUZZER_PIN, notes[i]);  // 播放音符
    }
    delay(durations[i]);  // 保持音符时长
  }
  noTone(BUZZER_PIN);  // 停止发声
  delay(2000);  // 播放完成后暂停2秒再重复
}
